Welcome to pandas!

5.3时间戳格式化

1、通过格式化获取时间日期数据

当需要对时间戳做格式化设置时,可以使用srtftime()函数,该函数既可以对单个时间戳做格式化设置, 也可以对DatetimeIndex和Series中的时间戳做格式设置。


代码 注释
%y 表示两位数的年份(00-99)
%Y 表示两位数的年份(0000-9999)
%m 月份(01-12)
%d 月内中的天(01-31)
%x 获取日期的部份
%X 获取时间的部份
%a 简化日期名称
%A 完整日期名称
%b 简化月份名称
%B 完整月份名称
%U 一年中星期天数(00-53)星期天为星期的开始
%W 一年中星期天数(00-53)星期一为星期的开始
%w 星期(0-6),星期天为星期的开始
%j 年内的某一天(0-365)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(0-59)
%S 秒(0-59)
%P 本地.A.M.或PM的等价符

import pandas as pd

df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\素材测试.格式时间戳.xlsx" )

print (df)

t1=df.考核日期.dt.strftime( "%Y" ) #dt为时间器

t2=df.考核日期.dt.strftime( "%d" )

print (t1)

print (t2)

返回:

姓名 考核日期 分数
0 张三 2023-03-09 09:12:54 89
1 李四 2021-05-18 19:45:34 96
2 王麻子 2011-11-11 11:16:04 83
3 小曾 2024-01-12 23:32:55 99

0 2023
1 2021
2 2011
3 2024

Name: 考核日期, dtype: object


0 09
1 18
2 11
3 12

Name: 考核日期, dtype: object


2、通过属性获取时间日期数据

要提取单个时间戳、时间戳序列,时间戳访问器3种数据的相关信息和属性, 可能使用strftime()函数,通过格式化代码设置获得,也可以通过使用属性获取时间戳的相关信息。

import pandas as pd

df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\素材测试.格式时间戳.xlsx" )

print (pd.to_datetime( "2015-6-3 11:12:16" ).strftime( "%Y" )) #此种获得的数据是文件格式

print (pd.to_datetime( "2015-6-3 11:12:16" ).year) #此种获得的数据是标准的时间格式

df[ "日期1" ]=df.考核日期.map(lambda d:d.date())

df[ "日期2" ]=df.考核日期.dt.date

df[ "日期3" ]=pd.DatetimeIndex(df.考核日期).date # 通过先获得时间序列再获取日期,推荐使用此种方法

print (df)

2015

2015

姓名 考核日期 分数 日期1 日期2 日期3
0 张三 2023-03-09 09:12:54 89 2023-03-09 2023-03-09 2023-03-09
1 李四 2021-05-18 19:45:34 96 2021-05-18 2021-05-18 2021-05-18
2 王麻子 2011-11-11 11:16:04 83 2011-11-11 2011-11-11 2011-11-11
3 小曾 2024-01-12 23:32:55 99 2024-01-12 2024-01-12 2024-01-12

dt 访问属性 注释
date 获取日期部分
time 获取时间部分
year 获取年分
quarter 获取季度
month 获取月份
day 获取日
hour 获取小时
mininute 获取分钟
isocalendar().week 每年的第几周(只适用于时间戳访问器)
dayofweek 星期1为0,星期日为6
dayofyear 一年中的第几天
daysinmonth 获取日期当月最后一天
day_in_month 获取日期当月最后一天